package day02;

public class DateTypeDemo {
    public static void main(String[] args) {
      /*
        //2)long:长整型,8个字节,-900万万亿多到900万万亿多
        long a = 100L;
        //long b = 100000000000;编译错误,因为100亿默认为int类型,但超出了int
        long c = 1000000000000L;//这个数为长整型直接量
        long d = 365L * 24 * 60 * 60 * 1000;//需要在后面加l,long*int=long类型
        System.out.println(d);//31536000000

        long e = 1000000000*2*10l;
        System.out.println(e);
        long f = 1000000000l*3*10;
        System.out.println(f);
        long g = 1000000000L;
        System.out.println(g);
        */


        /*
        //3)double:浮点型,8个字节,很大很大很大
        double a = 25.678;//25.678为小数直接量,默认为double类型
        float b = 25.678F;//25.678F为float型直接量

        double c=3.0,d=2.9;
        System.out.println(c-d);//0.1000000000000009发生舍入误差
        */


      /*
        //4)boolean:布尔型,一个字节
        boolean a = true;
        boolean b = false;
        boolean c = 25.6;//编译错误,布尔型只能存储true或false
       */

        /*
        //5)char : 字符型,2个字节
        char c1 = '女';
        char c2 = 'f';
        char c3 = '6';
        char c4 = ' ';
        //char c5 = '女';编译错误,字符直接量必须放在单引号中
        //char c6 = '';编译错误,必须有字符
        //char c7 = '10';编译错误,只能装一个字符,10有1和0

        char c8 = 65;//0到65535之间
        System.out.println(c8);//'A',println()时会依据c8的类型来输出
                               //若c8为char类型,则以字符形式展示
                               //若c8为int类型,则以数字形式展示
        char c9 = '\'';
        System.out.println(c9);//输出是: '
        char c10 = '\\';
        System.out.println(c10);//输出是: \
        //即想要输出特殊字符需要用 \
        */

        /*
        //6)类型间的转换:
        int a = 5;
        long b = a;    //  自动/隐式类型转换----不会溢出和丢失精度
        int c = (int)b;//   强制类型转换----有可能会溢出或丢失精度

        long d = 5;     //自动类型转换
        double e = 5;   //自动类型转换
        System.out.println(e); // 结果是:5.0

        long f = 100000000000L;
        int g = (int)f;
        System.out.println(g);//结果是:1215752192,强转有可能发生溢出,看在不在范围内


        double h = 25.978;
        int i = (int)h;
        System.out.println(i);//结果是:25 ,强转有可能丢失精度
        */

        /*
        //类型间的转换:
        //1)整数直接量可以直接赋值给byte,short,char,但不能超出范围
        //2)byte,short,char只有运算时会转换为int

        byte b1 = 5;
        byte b2 = 6;
        byte b3 = (byte) (b1+b2);

        System.out.println(2+2);  //   4
        System.out.println(2+'2');//   52,2+’2‘的码（50）
        System.out.println('2'+'2');// 100,'2'的码+’2‘的码
        System.out.println('2');  //   2,因为没有运算所以还算2

        int a = '我';    //看字符对应的码
        System.out.println(a);//’我‘的码
        char b = 65;     //看码对应的字符
        System.out.println(b);// A

        97----a
        65----A
        48----0
        */

        }

    }





